package com.xyz.practice.jdbc.databasemetadata;

import java.io.Serializable;

public class Attribute implements Serializable {
	private static final long serialVersionUID = -5617701978805722911L;

	Attribute() {

	}

	/**
	 * type catalog (may be null)
	 */
	private String typeCat;
	/**
	 * type schema (may be null)
	 */
	private String typeSchem;
	/**
	 * type name
	 */
	private String typeName;
	/**
	 * attribute name
	 */
	private String attrName;
	/**
	 * attribute type SQL type from java.sql.Types
	 */
	private int dataType;
	/**
	 * Data source dependent type name. For a UDT, the type name is fully
	 * qualified. For a REF, the type name is fully qualified and represents the
	 * target type of the reference type.
	 */
	private String attrTypeName;
	/**
	 * column size. For char or date types this is the maximum number of
	 * characters; for numeric or decimal types this is precision.
	 */
	private int attrSize;
	/**
	 * the number of fractional digits. Null is returned for data types where
	 * DECIMAL_DIGITS is not applicable.
	 */
	private int decimalDigits;
	/**
	 * Radix (typically either 10 or 2)
	 */
	private int numPrecRadix;
	/**
	 * whether NULL is allowed attributeNoNulls - might not allow NULL values
	 * attributeNullable - definitely allows NULL values
	 * attributeNullableUnknown - nullability unknown
	 */
	private String remarks;
	/**
	 * default value (may be null)
	 */
	private String attrDef;
	/**
	 * for char types the maximum number of bytes in the column
	 */
	private int charOctetLength;
	/**
	 * ISO rules are used to determine the nullability for a attribute. YES ---
	 * if the attribute can include NULLs NO --- if the attribute cannot include
	 * NULLs empty string --- if the nullability for the attribute is unknown
	 */
	private String isNullable;
	/**
	 * catalog of table that is the scope of a reference attribute (null if
	 * DATA_TYPE isn't REF)
	 */
	private String scopeCatalog;
	/**
	 * schema of table that is the scope of a reference attribute (null if
	 * DATA_TYPE isn't REF)
	 */
	private String scopeSchem;
	/**
	 * table name that is the scope of a reference attribute (null if the
	 * DATA_TYPE isn't REF)
	 */
	private String scopeTable;
	/**
	 * source type of a distinct type or user-generated Ref type,SQL type from
	 * java.sql.Types (null if DATA_TYPE isn't DISTINCT or user-generated REF)
	 */
	private short sourceDataType;

	String getTypeCat() {
		return typeCat;
	}

	void setTypeCat(String typeCat) {
		this.typeCat = typeCat;
	}

	String getTypeSchem() {
		return typeSchem;
	}

	void setTypeSchem(String typeSchem) {
		this.typeSchem = typeSchem;
	}

	String getTypeName() {
		return typeName;
	}

	void setTypeName(String typeName) {
		this.typeName = typeName;
	}

	String getAttrName() {
		return attrName;
	}

	void setAttrName(String attrName) {
		this.attrName = attrName;
	}

	int getDataType() {
		return dataType;
	}

	void setDataType(int dataType) {
		this.dataType = dataType;
	}

	String getAttrTypeName() {
		return attrTypeName;
	}

	void setAttrTypeName(String attrTypeName) {
		this.attrTypeName = attrTypeName;
	}

	int getAttrSize() {
		return attrSize;
	}

	void setAttrSize(int attrSize) {
		this.attrSize = attrSize;
	}

	int getDecimalDigits() {
		return decimalDigits;
	}

	void setDecimalDigits(int decimalDigits) {
		this.decimalDigits = decimalDigits;
	}

	int getNumPrecRadix() {
		return numPrecRadix;
	}

	void setNumPrecRadix(int numPrecRadix) {
		this.numPrecRadix = numPrecRadix;
	}

	String getRemarks() {
		return remarks;
	}

	void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	String getAttrDef() {
		return attrDef;
	}

	void setAttrDef(String attrDef) {
		this.attrDef = attrDef;
	}

	int getCharOctetLength() {
		return charOctetLength;
	}

	void setCharOctetLength(int charOctetLength) {
		this.charOctetLength = charOctetLength;
	}

	String getIsNullable() {
		return isNullable;
	}

	void setIsNullable(String isNullable) {
		this.isNullable = isNullable;
	}

	String getScopeCatalog() {
		return scopeCatalog;
	}

	void setScopeCatalog(String scopeCatalog) {
		this.scopeCatalog = scopeCatalog;
	}

	String getScopeSchem() {
		return scopeSchem;
	}

	void setScopeSchem(String scopeSchem) {
		this.scopeSchem = scopeSchem;
	}

	String getScopeTable() {
		return scopeTable;
	}

	void setScopeTable(String scopeTable) {
		this.scopeTable = scopeTable;
	}

	short getSourceDataType() {
		return sourceDataType;
	}

	void setSourceDataType(short sourceDataType) {
		this.sourceDataType = sourceDataType;
	}

}
